package com.u1zz.zeus.module.iot.dal.dataobject.product;

import lombok.Data;
import lombok.experimental.Accessors;


@Data
@Accessors
public class ProductMetaProperty extends ProductMetaBase{
    /**
     * 类型 property, service, event
     */
    private String type = "property";

    /**
     * 属性读写类型：只读（r）或读写（rw）
     */
    private String accessMode;
    /**
     * 属性类型:
     * int（原生）
     * float（原生）
     * double（原生）
     * text（原生）
     * date（String类型UTC毫秒）
     * bool（0或1的int类型）
     * enum（int类型，枚举项定义方法与bool类型定义0和1的值方法相同）
     * struct（结构体类型，可包含前面7种类型，下面使用"specs":[{}]描述包含的对象）
     * array（数组类型，支持int,double,float,text,struct）
     */
    private String dataType;

    /**
     * 最大,数字类型:int、long、float、double
     */
    private int max;
    /**
     * 最小,数字类型:int、long、float、double
     */
    private int min;
    /**
     * 小数位数,数字类型:float、double
     */
    private int decimals;
    /**
     * 单位,数字类型:int、long、float、double
     */
    private String unit;
    /**
     * 单位名称,数字类型:int、long、float、double，非必填
     */
    private String unitName;
    /**
     * 为true时的文本,默认为`是`,布尔类型:bool
     */
    private String trueText;
    /**
     * 为false时的文本,默认为`否`,布尔类型:bool
     */
    private String falseText;
    /**
     * 为true时的值,默认为`true`,布尔类型:bool
     */
    private String trueValue;
    /**
     * 为false时的值,默认为`false`,布尔类型:bool
     */
    private String falseValue;
    /**
     * 数组元素的个数，最大512（array类型特有）
     */
    private int size;
    /**
     * 步长（text、enum类型无此参数）
     */
    private int step;
    /**
     * 数据长度，最大10240（text类型特有）
     */
    private int length;
}
